package com.itheima.exam;

import java.util.Random;

/**
 * 案例二：开发一个程序，可以生成指定位数的验证码（code），每位可以是数字、大小写字母(getCode)。
 */
public class Demo02 {

    public static void main(String[] args) {
        //调用方法生成一个6位的验证码
        String code = getCode(6);
        System.out.println("code = " + code);

        //调用方法生成一个4位的验证码
        code = getCode(4);
        System.out.println("code = " + code);
    }

    public static String getCode(int n) {
        //1、定义数组保存数组、大小写字母。
        String[] arr = {"0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "Q", "W", "E", "R", "T", "Y", "U", "I", "O", "P", "A",
                "S", "D", "F", "G", "H", "J", "K", "L", "Z", "X", "C", "V", "B", "N", "M", "q", "w", "e", "r", "t", "y", "u",
                "i", "o", "p", "a", "s", "d", "f", "g", "h", "j", "k", "l", "z", "x", "c", "v", "b", "n", "m"};
        //2、创建Random对象，定义字符串code变量表示验证码
        Random r = new Random();
        String code = "";
        //3、for循环，随机一个索引
        for (int i = 0; i < n; i++) {
            int index = r.nextInt(arr.length);//[0,62]
            //4、通过索引从数组中获取字符拼接到code身上组成验证码
            code += arr[index];
        }
        //5、返回code验证码
        return code;
    }
}
